package com.hospital.controller;


import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.CircleCaptcha;
import com.hospital.entity.Admin;
import com.hospital.service.intf.AdminService;
import com.hospital.vo.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * ━━━━━━神兽出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　 ┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　  ┃
 * 　　┃　　　　　　 ┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛Code is far away from bug with the animal protecting
 * 　　　　┃　　　┃    神兽保佑,代码无bug
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━永无BUG!━━━━━━
 *
 * @author csh
 * @date 2022/8/29
 */
@RestController
@RequestMapping("/api/admin/")
public class AdminController {

    /**
     * 登录
     */
    @Autowired
    private AdminService service;

    @ResponseBody
    @RequestMapping("one.do")
    public R selectOne( String verifyCode,Admin admin, HttpSession session) throws IOException {
//        System.out.println(verifyCode);
        return service.selectOne(verifyCode,admin,session);
    }

    /***
     *退出session
     */
    @GetMapping("loginone.do")
    public R loginOut(HttpSession session){
        session.invalidate();
        return R.ok();
    }

    /**
     *实现验证码
     */
    @RequestMapping("code.do")
    public void getCode(HttpSession session, HttpServletResponse response , Object random) throws IOException {
        CircleCaptcha circleCaptcha = CaptchaUtil.createCircleCaptcha(200, 100, 4, 5);
        String code = circleCaptcha.getCode();
        session.setAttribute("code", code);
        circleCaptcha.write(response.getOutputStream());
    }

    @GetMapping("initmenus.do")
    public HashMap initMenus(HttpSession session){
        return service.initmenu(session);
    }

    @GetMapping("logout.do")
    public R logout(HttpSession session){
        session.invalidate();
        return R.ok();
    }
}
